import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

import 'lib-flexible/flexible'

import './assets/iconfont.css'

import axios from 'axios'
import VueAxios from 'vue-axios'



import {
  Tabbar,
  TabbarItem,
  Slider,
  Toast,
  Button,
  Popup,
  Tab,
  Tabs,
  Search,
  Col,
  Row,
  NavBar,
  Loading,
  PullRefresh,
  Icon,
  Grid,
  GridItem,
  Swipe,
   SwipeItem,
   Card ,
   Lazyload,
   Cell,
   NoticeBar ,
   Field  ,
   Form   ,
   Switch    ,

} from 'vant'

Vue
  .use(Tabbar)
  .use(TabbarItem)
  .use(Slider)
  .use(Button)
  .use(Popup)
  .use(Tab)
  .use(Tabs)
  .use(Search)
  .use(Col)
  .use(Row)
  .use(NavBar)
  .use(Loading)
  .use(PullRefresh)
  .use(Slider)
  .use(Icon )
  .use(Grid)
  .use(GridItem )
  .use(Swipe )
  .use(SwipeItem )
  .use(Card  )
  .use(Lazyload   )
  .use(Cell)
  .use(NoticeBar ) 
  .use(Field  ) 
  .use(Toast   ) 
  .use(Form    ) 
  .use(Switch     ) 

Vue.use(VueAxios, axios)

Vue.config.productionTip = false

axios.defaults.baseURL = 'https://apis.netstart.cn/music';
// axios.defaults.baseURL = 'http://localhost:3000';

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  Toast.loading({
    message: '加载中...',
    forbidClick: true,
    duration: 0
  });
  return config;
}, function (error) {
  // 对请求错误做些什么
  Toast.clear();
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  Toast.clear();
  return response;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  Toast.clear();
  return Promise.reject(error);
});


//定义全局过滤器：用于处理时间 ==> 格式：分钟:秒钟 01:20
// Vue.filter('formatSeconds', value => {
//    
//   return '00:00';
// })

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
